import Vue from "vue"
import Router from "vue-router"
import Login from "../components/Login.vue"
import Home from '../components/Home.vue'
import Welcome from '../components/Welcome.vue'
import Users from '../components/user/Users.vue'
import Rights from '../components/power/Rights.vue'
import Roles from '../components/power/Roles.vue'
import Cate from '../components/goods/Cate.vue'
import Params from '../components/goods/Params.vue'
import GoodsList from '../components/goods/List.vue'
import Add from '../components/goods/Add.vue'
import Order from '../components/order/Order.vue'
import Report from '../components/report/Report.vue'

Vue.use(Router);

//原本是export default new Router。直接new一个Router对象默认导出
//现在先拿到一个Router，接收一下，然后挂载一个路由守卫，最后再暴露出去
const router = new Router({
  routes: [
  {
    path: "/login",
    component: Login
  },
  {
    // 添加路由规则,当访问login时，显示Login组件到占位符
    path:'/',
    redirect:'/login'
  },
  {
    path:'/home',
    component: Home, 
    redirect: '/welcome',
    children:[
      { path:'/welcome', component: Welcome},
      { path:'/users', component: Users},
      { path:'/rights', component: Rights},
      { path:'/roles', component: Roles},
      { path:'/categories', component: Cate},
      { path:'/params' , component: Params},
      { path:'/goods' , component: GoodsList},
      { path:'/goods/add', component:Add},
      { path: '/orders', component: Order },
      { path:'/reports' ,component: Report }
      ]
    }
  ]
})

//挂载路由导航守卫
router.beforeEach((to, from ,next) => {
  //to 将要访问的路径
  //from代表从哪个路径跳转
  //next表示一个函数，表示放行
  //      next() 放行 next('/login') 强制跳转

  if(to.path === '/login') return next()
  //获取token
  const tokenStr = window.sessionStorage.getItem('token')
  if (!tokenStr) return next('/login')
  //运行到这里证明token是存在的
  next();

});


export default router